﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace ConvertTools
{
    public partial class frmMain : Form
    {
        DataTable dtType = new DataTable();
        public frmMain()
        {
            InitializeComponent();

            dtType.Columns.Add("Id");
            dtType.Columns.Add("Subject");
            dtType.Rows.Add(new object[] { "SO_DANG_KY_BANG_HINH_BANG_TU", "Số đăng ký băng hình dân tộc" });
            dtType.Rows.Add(new object[] { "SO_DANG_KY_BANG_HINH_BANG_TU_TRUYEN_THONG", "Số đăng ký băng hình truyền thống" });
            dtType.Rows.Add(new object[] { "SO_DANG_KY_BANG_GHI_AM", "Số đăng ký băng ghi âm dân tộc" });
            dtType.Rows.Add(new object[] { "SO_DANG_KY_BANG_GHI_AM_TRUYEN_THONG", "Số đăng ký băng ghi âm truyền thống" });
            dtType.Rows.Add(new object[] { "SO_DANG_KY_PHIM", "Số đăng ký phim dân tộc" });
            dtType.Rows.Add(new object[] { "SO_DANG_KY_PHIM_TRUYEN_THONG", "Số đăng ký phim truyền thống" });
            dtType.Rows.Add(new object[] { "SO_KIEM_KE_BAN_DAU", "Số kiểm kê ban đầu" });
            dtType.Rows.Add(new object[] { "SO_BAO_QUAN_TAM_THOI", "Số bảo quản tạm thời" });
            dtType.Rows.Add(new object[] { "SO_NHAP_TAI_LIEU_KHOA_HOC_PHU", "Số tài liệu khoa học phụ" });
            

            comboBoxType.DataSource = dtType;
            comboBoxType.ValueMember = "Id";
            comboBoxType.DisplayMember = "Subject";

            try
            {
                txtExcelFile.Text = new RegistryBLL().Read("ImportFile");
                nStartLine.Value = int.Parse(new RegistryBLL().Read("StartLine"));
                nEndLine.Value = int.Parse(new RegistryBLL().Read("EndLine"));
                int iType = int.Parse(new RegistryBLL().Read("Type"));
                comboBoxType.SelectedIndex = iType;
                txtSheetName.Text = new RegistryBLL().Read("SheetName");
            }
            catch { }
            comboBoxType.SelectedIndexChanged += new EventHandler(comboBoxType_SelectedIndexChanged);

        }

        void comboBoxType_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                txtSheetName.Text = comboBoxType.SelectedValue.ToString();
            }
            catch { }
        }

        private void cmdExit_Click(object sender, EventArgs e)
        {
            this.Close();
        }        

        private void cmdExecute_Click(object sender, EventArgs e)
        {
            txtLog.Text = string.Empty;
            new RegistryBLL().Write("ImportFile", txtExcelFile.Text);
            new RegistryBLL().Write("StartLine", nStartLine.Value);
            new RegistryBLL().Write("EndLine", nEndLine.Value);
            new RegistryBLL().Write("Type", comboBoxType.SelectedIndex.ToString());
            new RegistryBLL().Write("SheetName", txtSheetName.Text);
            ProcessDataBll oProcessDataBll = new ProcessDataBll();
            oProcessDataBll.ProcessEvent += new ProcessDataBll.ProcessHandler(oProcessDataBll_ProcessEvent);            

            try
            {
                if (string.IsNullOrEmpty(txtExcelFile.Text))
                {
                    throw new Exception("Không tìm thấy file Excel!");
                }
                System.IO.FileInfo fi = new System.IO.FileInfo(txtExcelFile.Text);
                if (fi.Exists == false)
                {
                    throw new Exception("Không tìm thấy file Excel!");
                }
                string Id = comboBoxType.SelectedValue.ToString();
                ExcelSheet OExcelSheet = new ProcessDataBll().GetExcelSheets(Id, (int)nStartLine.Value, (int)nEndLine.Value);
                OExcelSheet.SheetName = txtSheetName.Text;
                oProcessDataBll.Execute(OExcelSheet, txtExcelFile.Text);
            }
            catch (Exception ex)
            {
                MessageBox.Show(this, ex.Message.ToString(), "Thông báo");
            }
        }

        public void oProcessDataBll_ProcessEvent(string Message)
        {
            progressBar1.Value = progressBar1.Value + 1;
            if (progressBar1.Value == progressBar1.Maximum)
            {
                progressBar1.Value = 0;
            }
            txtLog.Text = Message + "\r\n" + txtLog.Text;
            Application.DoEvents();
        }


        private void cmdLookUp_Click(object sender, EventArgs e)
        {
            OpenFileDialog of = new OpenFileDialog();
            if (of.ShowDialog() == DialogResult.No) return;
            txtExcelFile.Text = of.FileName;
        }

        private void cmdDelete_Click(object sender, EventArgs e)
        {
            const string message =
              "Xác nhận xóa?";
            const string caption = "Xóa dữ liệu";
            var result = MessageBox.Show(message, caption,
                                         MessageBoxButtons.YesNo,
                                         MessageBoxIcon.Warning);

            // If the no button was pressed ... 
            if (result == DialogResult.Yes)
            {
                ProcessDataBll oProcessDataBll = new ProcessDataBll();
                oProcessDataBll.ProcessEvent += new ProcessDataBll.ProcessHandler(oProcessDataBll_ProcessEvent);

                string Id = comboBoxType.SelectedValue.ToString();
                string Name = comboBoxType.SelectedValue.ToString();
                string AssTypeId = new ProcessDataBll().GetAssTypeId(Id);
                oProcessDataBll.ExecuteDelete(AssTypeId, Name);
            }
            //else {
            //    this.Close();
            //}
            
        }

    }
}
